package com.mazaiting.scheduler.task;

import com.mazaiting.scheduler.util.JobParamUtil;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;

/**
 * 定时任务公共类
 *
 * @author mazaiting
 * @create_time 2022/4/6 11:57
 */
@Slf4j
public abstract class BaseTask {

    /**
     * 执行定时任务
     *
     * @param params 参数
     * @return 成功失败
     */
    public boolean execute(String params) {
        try {
            Map<String, String> map = JobParamUtil.getJobParam(params);
            execute(map);
        } catch (Exception e) {
            e.printStackTrace();
            log.debug("任务执行异常: " + e.getMessage());
            return false;
        }
        return true;
    }

    /**
     * 任务执行的真实操作
     *
     * @param map 参数集合
     */
    protected abstract void execute(Map<String, String> map);
}
